home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / DEF / Process / Clone / clone-class < prev    next >
Text File  |  1998-10-23  |  3KB  |  60 lines

  1. clone-class class from-instrument to-instrument
  2.                            exeption-section definition &rest exeption-sections definitions
  3.  
  4. clone-class allows to clone already made class definitions to another instruments. clone-class can also be used to make the actual definitions if you choose to keep the source material of you composition in 'ad hook' classes.
  5.  
  6. This clones the symbol class of bass to synth in all sections. After evaluating all sections of synth contain the same symbols as all sections of bass.
  7.  
  8. (clone-class symbol bass synth)
  9.  
  10. To introduce modifications to some sections you can use the exception option. The following redefines the sections sect-a and sect-b, otherwise all classes are cloned as is.
  11.  
  12. (clone-class symbol bass synth
  13.   sect-a (do-section :all '(symbol-transpose 1 x) (same-as sect-a))
  14.   sect-b (do-section :all '(symbol-transpose 2 x) (same-as sect-b))
  15. )
  16.  
  17. Target instrument can be a single instrument or a list of instrument names. After the following synth1 and synth2 share the same classes for all sections as the synth, except the section a and b which are redefined.
  18.  
  19. (clone-class symbol synth (synth1 synth2)
  20.   sect-a (do-section :all '(symbol-transpose 1 x) (same-as sect-a))
  21.   sect-b (do-section :all '(symbol-transpose 1 x) (same-as sect-b))
  22. )
  23.  
  24. If you want 2 exact copies of the original, leave the exceptions part out.
  25.  
  26. To clone multiple classes to multiple targets replace the single class name as a list of class names. The following clones the symbol, velocity and tonality classes of bass to synth1 and synth2.
  27.  
  28. (clone-class (symbol velocity tonality) bass (synth1 synth2))
  29.  
  30. The above works also with exeptions in which case the redefined classes and sections are defined as in the following.
  31.  
  32. The following clones the symbol, velocity and tonality classes from bass to synth. The tonalities and velocities in sections a and b are redefined.
  33.  
  34. (clone-class (symbol velocity tonality) bass synth
  35.    :tonality
  36.       sect-a '(this differs)
  37.       sect-b '(and this)
  38.    :velocity
  39.       sect-a '(this differs)
  40.       sect-b '(this too)
  41. )
  42.  
  43. To clone all classes use :all keyword instead of the class. After cloning  the same bingings for all the symbol, length, tonality, zone, velocity, channel, program, controller and tempo classes exists also for the target instrument.
  44.  
  45. In the following all classes, and all sections and classes from bass are cloned to synth1 and synth2.
  46.  
  47. (clone-class :all bass (synth1 synth2))
  48.  
  49. To introduce changes while cloning use the exceptions option as earlier to redefine those classes you want to differ.
  50.  
  51. (clone-class :all bass (synth1 synth2)
  52.    :tonality
  53.       sect-a '(this differs)
  54.       sect-b '(and this)
  55.    :velocity
  56.       sect-am '(this differs)
  57.       sect-bm '(this too)
  58. )
  59.  
  60.